<?php

require_once '../application/business/UserBusiness.php';

class ClientValidator{

	//VALIDA FORMULARIO DE CADASTRO
	public function newClientValid($form, $confirm, $address){

		$birth = explode('/', $form['birth']);

		if(empty($form['name'])){
			$errorMessages['name'] = 'Campo obrigatório.';
		}elseif(strlen($form['name']) < 10){
			$errorMessages['name'] = 'Mínimo 10 caracteres';
		}elseif(strlen($form['name']) > 60){
			$errorMessages['name'] = 'Máximo 60 caracteres';
		}

		if(empty($form['cpf'])){
			$errorMessages['cpf'] = 'Campo obrigatório';
		}elseif(strlen($form['cpf']) < 14){
			$errorMessages['cpf'] = 'CPF inválido';
		}


		if(empty($form['birth'])){
			$errorMessages['birth'] = 'Campo obrigatório';
		}


		if(empty($form['gender']) || $form['gender'] = null){
			$errorMessages['gender'] = 'Campo obrigatório.';
		}


		if(empty($form['phone'])){
			$errorMessages['phone'] = 'Campo obrigatório.';
		}elseif(strlen($form['phone']) > 14){
			$errorMessages['phone'] = 'Telefone inválido';
		}elseif(strlen($form['phone']) < 13){
			$errorMessages['phone'] = 'Telefone inválido';
		}


		if(!empty($form['celphone'])){
			if(strlen($form['celphone']) > 14){
				$errorMessages['celphone'] = 'Celular inválido';
			}else
			if(strlen($form['celphone']) < 13){
				$errorMessages['celphone'] = 'Celular inválido';
			}
		}


		if(empty($form['email'])){
			$errorMessages['email'] = 'Campo obrigatório';
		}
		elseif(strlen($form['email']) > 60){
			$errorMessages['email'] = 'Máximo 60 caracteres';
		}elseif(!filter_var($form['email'], FILTER_VALIDATE_EMAIL)){
			$errorMessages['email'] = 'E-mail inválido';
		}


		if(empty($form['login'])){
			$errorMessages['login'] = 'Campo obrigatório';
		}
		if(strlen($form['login']) > 15){
			$errorMessages['login'] = 'Máximo 15 caracteres';
		}

		if(empty($form['password'])){
			$errorMessages['password'] = 'Campo obrigatório';
		}elseif(strlen($form['password']) > 10){
			$errorMessages['password'] = 'Máximo 10 caracteres';
		}elseif(strlen($form['password']) < 6){
			$errorMessages['password'] = 'Mínimo 6 caracteres';
		}


		if(empty($confirm)){
			$errorMessages['confirm'] = 'Campo obrigatório';
		}elseif(strlen($confirm) > 10){
			$errorMessages['confirm'] = 'Máximo 10 caracteres';
		}elseif(strlen($confirm) < 6){
			$errorMessages['confirm'] = 'Mínimo 6 caracteres';
		}elseif($confirm != $form['password']){
			$errorMessages['confirm'] = 'Senha não confirma';
		}

		if(empty($address['cep'])){
			$errorMessages['cep'] = 'Campo obrigatório';
		}elseif(strlen($address['cep']) > 9){
			$errorMessages['cep'] = 'CEP inválido';
		}elseif(strlen($address['cep']) < 9){
			$errorMessages['cep'] = 'CEP inválido';
		}

		if(empty($address['type'])){
			$errorMessages['type'] = 'Campo obrigatório';
		}

		if(empty($address['address'])){
			$errorMessages['address'] = 'Campo obrigatório';
		}elseif(strlen($address['address']) > 60){
			$errorMessages['address'] = 'Máximo 60 caracteres';
		}

		if(empty($address['number'])){
			$errorMessages['number'] = 'Campo obrigatório';
		}elseif(strlen($address['number']) > 6){
			$errorMessages['number'] = 'Máximo 6 caracteres';
		}elseif(!is_numeric($address['number'])){
			$errorMessages['number'] = 'Número inválido';
		}

		if($address['comp'] > 20){
			$errorMessages['comp'] = 'Máximo 20 caracteres';
		}

		if(empty($address['neigh'])){
			$errorMessages['neigh'] = 'Campo obrigatório';
		}elseif(strlen($address['neigh']) > 45){
			$errorMessages['neigh'] = 'Máximo 45 caracteres';
		}

		if(empty($address['city'])){
			$errorMessages['city'] = 'Campo obrigatório';
		}elseif(strlen($address['city']) > 30){
			$errorMessages['city'] = 'Máximo 30 caracteres';
		}

		if(empty($address['state'])){
			$errorMessages['state'] = 'Campo obrigatório';
		}elseif(strlen($address['state']) > 2){
			$errorMessages['state'] = 'Máximo 2 caracteres';
		}

		if(strlen($address['reference']) > 100){
			$errorMessages['reference'] = 'Máximo 100 caracteres';
		}
		
		$userBusiness = new UserBusiness();

		if(!empty($form['login']) && $form['login'] != null){
			$existUser = $userBusiness->getUserByLogin($form['login']);

			if($existUser){
				$errorMessages['login'] = 'Apelido já cadastrado no sistema.';
			}
		}

		if(!empty($form['email']) && $form['email'] != null){
			$existUser = $userBusiness->getUserByEmail($form['email']);

			if($existUser != null){
				$errorMessages['email'] = "E-mail já cadastrado no sistema.";
			}
		}

		if(!empty($form['cpf']) && $form['cpf'] != null){
			$existUser = $userBusiness->getUserByCpf($form['cpf']);

			if($existUser){
				$errorMessages['cpf'] = 'CPF já cadastrado no sistema.';
			}
		}

		return $errorMessages;

	}

}